You are right, fixed speed of a DC motor requires a (PID...) controller. A linear(?) servo includes such a controller, but you can not fine tune it to your needs. Stepper motors can be controlled better, but for constant continuous rotation a BLDC motor may be the best choice.
Speed and position are closely related, because feedback from the rotary encoder of a DC motor indicates the steps or turns taken so far, i.e. a position. The actual speed then corresponds to the number of pulses within some time, or the time between two pulses. The choice depends on the pulse frequency, i.e. for slow pulses the time between pulses yields faster feedback.