Use a stepper motor, to precisely control the position of the shade, unless you also want to have to use limit switches.
If you use a stepper motor, then you can simply calculate the number of rotations required in order to roll the cloth up, or down, sufficiently. Once the number of rotations has been completed, turn off the stepper. In addition, if you use a stepper, you could also have the shade stop half way, two thirds, or whatever proportional open, or closed, that you require, without needing limit switches (or IR switches) along the entire throw of the shade, to tell you where the shade currently is.
If you use a geared motor, then you will require limit switches, or something of that ilk, to stop the shade when it reaches either extreme (i.e., fully open and fully closed).
Common stepper motors include the 28BYJ-48

and the Nema variations

Be sure to chose one with sufficient power (torque) to wind to shade. It shouldn't require too much, but it will depend on the weight of the cloth and the size of the shade.
The stepper motor will need to be controlled by an Arduino (or some other such controller (Raspberry Pi or PIC)), in conjunction with a stepper motor driver (such as a Easy Driver or ULN2003).
Stepper motors are too large a topic to explain here in depth, however the following two tutorials should get you up to speed.
There is a very useful video tutorial, Control a Stepper Motor using an Arduino, a Joystick and the Easy Driver - Tutorial, that you will find very useful.
If you decide to use a ULN2003, then the video tutorial, 28BYJ-48 Stepper Motor and ULN2003 Driver Intro, is extremely informative.