For a project that I'm working on, I need motor rotation at extremely small increments -- my desired resolution is about ~0.15 degrees per minimum rotation step.
Of course, most motors of reasonably cost don't offer this much precision, so I am trying to see if I can reach my goal using closed-loop movement with a low-cost motor.
Let's say I have access to output data from an encoder that can measure rotation to my required resolution (i.e., down to 0.15 degrees incremental angle).
My question then: Is it possible to interface such an encoder (its data forming a feedback loop) via a microcontroller to a motor, and get to any arbitrary desired resolution, or are there motor-mechanics based limits to achievable precision?
In terms of motor choice for this particular method:
Steppers: I suppose steppers are not an option since they are designed to move in certain-size steps and, even with my feedback encoder, I cannot instruct the stepper to stop in between steps.
Standard DC motors: Could I use my encoder data and then do a PID loop to move the motor and zone in on the target angular position each time? I suppose the settling time might be too long?
Servos: Could I add my own closed-loop control using my encoder either in addition to, or replacing the pot of, a cheap servo with low resolution? Thus getting it to move/step at my target improved resolution. Or are there design-specific limits to how precisely a given servo can move, which I cannot overcome?