Why is PWM speed control better than dropping the voltage?
Instead of cutting the voltage, PWM switches the full voltage on and off fast to set average power: heat loss in the driver falls, torque holds at low speed.
Instead of cutting the voltage, PWM sets the average power the motor sees by switching the full voltage on and off very quickly. The loss turned into heat in the driver is far lower, and the motor largely keeps its torque at low speed. Dropping the speed with a resistor, on the other hand, turns the excess energy into heat: efficiency falls and the driver heats up.
What dropping it with a resistor costs you
To reduce the voltage going to the motor, a series resistor has to drop that voltage across itself, and that voltage is multiplied by the current and becomes heat. The energy lost as the speed halves does not disappear, it is spent in the resistor. The result is bad in two directions: the energy drawn from the battery stays the same but is not turned into work, and on top of that a component that heats up has to be cooled. That is the directly visible bill for the loss of efficiency. On a battery-powered vehicle this loss is paid twice: once out of the running time, and once out of the life of the component that heats up.
How PWM works
PWM (pulse width modulation) switches the full voltage on and off thousands of times per second. The average voltage the motor sees is set by the ratio of the time the pulse stays on to the total period, that is, by the duty cycle. The switch is either fully conducting or fully cut off; in both states the power spent across it is small, because either the voltage or the current is close to zero. The winding inductance of the motor smooths these pulses into a continuous current; the driver produces no loss, while the motor runs with a steady current. There is a pulsed voltage at the motor terminals, but the rotor does not see it, it sees its average. That is why, in a 12V system, a half duty cycle also reduces the current drawn from the battery by roughly the same ratio; with the resistive solution the current does not fall at all, it only moves elsewhere.
Why torque is kept at low speed
The torque of a motor is proportional to the current through the winding, not to the average voltage. In PWM, because the full voltage is applied to the motor for the duration of the pulse, the current builds up quickly and torque is largely kept as the speed falls. When dropping it with a resistor, voltage and current shrink together; the motor weakens as it slows down and stops the moment it is loaded. In applications that want high force at low speed, such as doors, screens and lifts, the difference is clearly felt.
Where PWM is not enough on its own
Switching is not free. Some loss occurs at every on-off event and this loss grows with frequency; that is why the choice of frequency is a balance between quietness and heat. At very low duty cycles the motor may not overcome friction and may not start at all; a briefly higher pulse is needed at the beginning of the movement. Switching also imposes electrical noise on the cables, which is why the motor cable has to be run separately from the signal and RF cables. The rule does not work the same way on inductive loads that are not motors either: when driving a proportional solenoid the aim is not quietness but establishing the coil current correctly.
What to do
In an application that needs speed control, choose a PWM-based driver instead of resistive or stepped solutions, and bring the ramp into use. After installation, test whether it can lift the load at low speed with the real load, not with no load; if it cannot start, the problem is not in PWM but in the deadband or in the mechanical resistance margin. Repeat the same test both cold and with the system warmed up, because the smallest duty cycle that is enough to start changes along with the grease consistency.
The full topic: DC Motor Driver Selection Guide