they all workdifferently... you need to learn about the difference before
starting design.
dc motors are simple, they are great for torque and speed but lack
control. typical speed control is done with PWM.
stepper motors are good to move to a specified position and hold that position even after power down. keeping track of position can be as simple as counting steps - as long as you don't exceed speed or torque limits so your counts do match actual number of steps. this is why they are used so often in open loop systems (no feedback, you just hope the
count matches actual position). you can add feedback but this might get expencive and offer little or no advantage to better systems.
downsides include slow speed, stepping instead of smooth movement, noise, vibrations, etc.
dc servos as used in toys etc are actually dc motors with a gearbox, potentiometer and controls. they are used in positioning applications.
integrated potentiometer provides feedback to the controller (whichis also built in). controller simply compares this value with input signal and turns motor to the right direction until commanded position is reached. because of feedback, this isclosed loop system. it is way faster and smoother than stepper but it's stroke is limited to stroke of potentiometer which is something like 3/4 of a turn. instead of voltage input, servos typically use
pulse length as positioning reference because thisis much simpler to generate with microcontroller compared to analog signal.