
Every robot build eventually asks the same question: which motor actually does what you need? Servos, DC motors, and stepper motors get used interchangeably in casual conversation and they are not interchangeable in practice — each one solves a different problem, uses a different control method, and picking the wrong one means rewiring your whole build later.
Servo Motors: Precise Position, Controlled by Pulse Width
A servo moves to and holds a specific angle — typically 0 to 180 degrees — and it’s told which angle using a technique called PWM, short for pulse-width modulation. Instead of a steady voltage, the Arduino sends the servo a rapid series of pulses, roughly 50 per second, and the servo reads the width of each individual pulse (typically somewhere between 1 and 2 milliseconds) to know what angle to move to: a narrower pulse means one end of the range, a wider pulse means the other, and everything between maps proportionally. Inside the servo, a small feedback potentiometer constantly reports the shaft’s actual current angle back to a built-in control circuit, which keeps adjusting the motor until the shaft matches the angle the incoming pulse width is asking for — that closed feedback loop is what lets a servo hold a fixed position under load instead of just spinning freely.
This makes servos the right choice for anything that needs to point, aim, or hold a fixed pose: a robot arm’s joints, a camera pan mount, a steering mechanism. What they don’t do well is continuous rotation or driving wheels — that’s not the job the feedback mechanism is built for.
DC Motors: Continuous Spin, Controlled by an H-Bridge
A DC motor just spins, as fast or slow as the voltage you give it, in whichever direction current flows through it — reverse the polarity and it spins the other way. It has no idea what angle it’s at and can’t hold a position; it’s built for continuous rotation, which makes it the right choice for wheels and propellers. The catch is that an Arduino’s pins can’t safely drive a motor directly — a motor draws far more current than a GPIO pin can supply, and would damage the pin trying. A motor driver board sits in between and solves this with a circuit called an H-bridge: four switches arranged so that flipping which pair is on reverses the current direction through the motor, letting your Arduino control both speed (via PWM, the same pulsing technique servos use, just applied differently here) and direction using only small, safe control signals, while the driver board itself handles the actual motor current from a separate power source.
Stepper Motors: Precise Position, Full Rotation, Coil by Coil
A stepper motor splits a full rotation into discrete steps (200 steps per revolution is common) by using several internal electromagnetic coils instead of the single continuous winding a DC motor uses. Energizing those coils in a specific sequence pulls the motor’s shaft forward exactly one step at a time — reverse the sequence and it steps backward — which gives you both continuous rotation capability and precise position tracking, something neither servos nor DC motors offer alone (a servo is precise but range-limited; a DC motor spins freely but has no positional awareness at all). That precision comes at a cost: steppers need a dedicated driver to manage the coil-sequencing pattern, more wiring, and more current than a comparable DC motor, which is why they show up in 3D printers and CNC machines — applications that need exact, repeatable positioning — rather than simple wheeled robots.
This post contains affiliate links. If you buy through them, this site earns a commission at no extra cost to you.
The standard beginner servo. Cheap enough to buy five and not think twice about it, plenty of torque for small robot arms and pan mounts.
Check Price on Amazon →
An H-bridge driver that controls two DC motors independently, direction and speed both. This is the board that sits between your Arduino and any wheeled robot’s motors.
Check Price on Amazon →The Short Version
Need something to point or hold a pose? Servo, controlled by pulse width. Need wheels to spin? DC motor plus an H-bridge driver board. Need both continuous rotation and precise positioning? Stepper, controlled by sequencing its internal coils. Most beginner robots need exactly the first two.