As you know microcontroller board (e.g. arduino) have limited current output and mostly fived voltages 3.3V/5V. So they can not be used directly to power the motor, so you need either a motor driver or controller to power it.
The difference is that a motor driver only handles power, and the control has to be done by a microcontroller, often the signal to be sent to the motor driver require proper timing and care. Whereas a motor controller is a motor driver plus some logical part taking care of the low-level control of the motor, that means that you can send high-level commands to the controller like pwm or set points, and it takes care of the interaction with the driver.
Back to the driver, DC motor do not require a specific protocol to be controlled, but servos, stepper and brushless require a specific type of signal to be operated properly.
When you buy some packaged servo, they usually consist of a DC motor and a controller, so you need to provide a high-level (eg pwm) and the required power. In that case you only need an adequate power supply and something able to produce a pwm signal.
See for example this tutorial from howtomechatronics.com