Robin2:
You can certainly control the speed of a DC motor within narrow limits +/- 1% should be easily achievable if you have some means to measure the speed and feed that back to the Arduino. Sudden large variations in load would probably result in brief excursions away from the set speed.For the low speeds that you mention you should use a geared motor.
If very constant speed is needed then a stepper motor might be better as you can control the interval between steps very precisely and, provided the motor can easily deal with the largest load it won't be affected by changes in load. The downsides are that the motion is in steps and the motors are very inefficient. Gearing may not be needed.
...R
Thanks a lot for your reply, most of the things seems cleared now. However, i have one further query that can you suggest any suitable module that is compatible with Arduino and can be used to control the speed of DC motor efficiently? Thank you.