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.
2017-08-14 08:56:43 UTC WeepingAngel - 44 points
As you are using DC motor, you cannot program it by taking time into consideration. You need a feedback system for that as it has effect of gravity. If you are interested in the cheapest solution then, i would suggest you to use potentiometer at the shaft of your dc motor and take the input of potentiometer to an analog pin of the micro controller and program it accordinly i.e at particular angle it will given a particular voltage and so on.
2017-08-21 06:19:57 UTC Shanque - 141 points