Arduino and high resolution servo

I am very new to this subject and I am not sure if I understand it right...
I want to make servo motor from DC motor and digital encoder. Is that possible? What would be the maximal resolution I could achieve? Is that limited by arduino's analog output levels, encoder resolution or something else. I am interested in resoutions over 10.000 micropositions per revolution, is that possible (encoder allows it at least)
Thanks

No I don't think that is on straight off although all things are possible with extra hardware.

For that sort of resolution you will probably need a geared motor with the sensor on the pre geared motor. It is best using an optical pulse encoder and using the arduino to keep track of the number of revolutions (or part revolutions).
Traditionally a servo is controlled by modulating the pulse width of a signal, is this being provided by something else? Or do you not want to make a servo at all but a motor that you can accurately position?

That is an awful a lot of resolution, do you actually need that much?

That is incrdible precision. What about a microstepping stepper motor geared down?

A 200 step stepper motor conencted to an easydriver will give you 1600 steps. Gear that by at least a 7:1 ratio gear set and you will have your resolution.

Yes, I'd rather have motor that can accurately position. I need it for controlling the mirror on the laser measuring device. At this moment I am using 400 step motor with 64microstepping driver but microstepping is useless since step is much much smaller near full steps, and large in between, so extremely nonlinear and visible already on bounced light 50cm from the motor.
That is on of the reasons I am thinking of using servo motor. I could catch output shaft position on encoder. As you know stepper has jumpy movements from step to step so I can not catch position right even with encoder.

You cannot guarantee that you will get every possible reading, unless you're not doing anything else - and even then...

But, depending on the output, you can certainly use attachInterrupt() for counting the pulses out of your encoder, assuming it gives one pulse per increment (quadrature is different) -- you just use your interrupt function to increment a counter. Then, at fixed intervals measure the values in the counter to determine distance traveled, and then re-set the counter.

!c