There are a couple of things that you could use, depending on your application. The first is a rotary encoder (here's a 200 pulse/rotation encoder at Sparkfun for example). You can use feedback to determine speed and position.
Another way would be to drive a potentiometer along with the output, and use it as a voltage divider to determine position. Note that using a potentiometer would limit the output of the motor to coincide with the total angle of rotation of the potentiometer. In other words, if the potentiometer can only turn 180 degrees, then the motor would also be limited to this range.
You'll need a circuit that can drive the motor and compare input (desired position) and feedback (actual position), taking into consideration polarity and time. Research PID (proportional-integral-derivative) controllers and H-Bridge circuits.
I'm not sure what the specifications of the motor are, but you can find controllers that would be relatively easy to interface with AVR projects, such as this motor controller at Pololu. It will drive up to 16V at 12A using a variety of input methods (USB, serial, hobby RC, etc.).