Matt Mets made this neat video about using a servo motor as an input device for keyframing a robot animation. He writes:

By reading the voltage from the center pin of the the servo’s potentiometer, it can be used as an input as well as an output device. Basically, you get a bunch of extra positional sensors ‘for free’. Some things that I could see this being useful for are:

1. Collision detection on unpowered arms (or even poor man’s torque detection by measuring the difference between what you requested and the actual position, assuming the servo doesn’t break).

2. Physical keyframing; you move the arms of the thing you are animating manually, then press a button to record that position, repeat a number of times and then have the computer play it back (see video)

3. Haptic feedback, if you can control the servo fast enough (doubtful, but worth a try).

Servo as input device for programing robot movements – Link.