I've done quite a few motor control circuits, at both high and low frequencies, I don't champion the low frequency approach lightly.
I'm talking about DC brush type motors, the type OP is probably using.
A motor control circuit will act like a buck regulator and give you DC in the windings - but before you say that's the "proper" way to control it, try controlling motor speed with a DC power supply.
Go ahead, I'll wait.
...
See the problem? There's very little adjustment between "stall" and "too fast", particularly with a light or inertial load on the motor. The High-frequency PWM behaves the same way.
Now try the same test with a frequency around 60hz for a 12V, 6A motor like OP's (or 1khz for a small toy motor) using a variable PWM. You have a wide range of control over the speed. You can make it turn very SLOWLY, if you want. Try doing that at 18khz, or with DC.