I'm assuming you're not goign to use super expensive DC stepper motors, which will position themselves accurately (and then the problem is just maths).
If you're using cheap motors then what you need is a shaft encoder, to find out what angle the motor has currently turned. Arduino supports lots of different encoder (http://playground.arduino.cc/Main/RotaryEncoders) as this is a standard problem in SLAM robotics (the mobile robot needs to how far it has moved).
here is an easy tutorial explaing how to read one out: https://www.ez-robot.com/Tutorials/UserTutorials/189/1
Here is also information on how to control a robot arm with different encoders:
I hope that helps.