To answer your first question, Yes you can use a stepper motor instead of a DC motor. They are fundamentally different motors and controls. With a DC motor your applied voltage will give you the motor speed and current will give you motor torque. However if you want to control position you will need a position rotary encoder of some type and utilise this to generate your motor signal via a closed loop.
With a Stepper motor however the drive you apply will specify the position it will occupy. The drive you apply will be a repeating pattern to make the motor increment its position by a step (hence stepper motor). By increasing the rate at which you change the drive commands you can make the motor step faster increasing its speed. A normal small type stepper motor usually has a max speed of about 200rpm after which the rate at which you change the commands becomes too fast for the motor to generate the required forces to turn the motor.
With a stepper motor you will not need an encoder if you can assume in your control code that the motor has increased a step as planned, (this is open loop control). If you need assurance that the motor is working as planned you can add an encoder if you like.
For both motors, digital control will require a driver package to deliver the power required to operate the motors. Polulou has a good range.
Not sure of eddie robot, but you should check out Austria Microsystem's AS5040 magnetic encoder. They are quite cheap an offer a range of encoding options from absolute to incremental encoding to 10 bits. here