I/O pins

When should I not use pins 1 and 2 of the I/O on Arduino Uno? I know they are send and receive but is there certain circumstances when I can use them and when I can't? I want to utilize 12 I/O pins to control 2 bi-polar step motors and 2 d/c motors by using a controller through the analog inputs.

(Is there an example of a program where I can learn how to use just two digital pins to control 1 stepper motor to save some pin space?)

I know these are all noob questions and I don't have a book to reference on...yet.

Check out the code below

#include <Stepper.h>

#define motorSteps 200     // change this depending on the number of steps
                           // per revolution of your motor
#define motorPin1 8
#define motorPin2 9
#define ledPin 13

// initialize of the Stepper library:
Stepper myStepper(motorSteps, motorPin1,motorPin2);

Is there any benefit to #defining the pins and labeling as so in initializing the stepper library. Would more memory be taken up if I just initialized the library as so
Stepper myStepper(200,8,9);?

Would more memory be taken up if I just initialized the library as so

Same amount of memory taken up.

When should I not use pins 1 and 2 of the I/O on Arduino Uno? I know they are send and receive

You need to re-read the manual then.
Pin 1 is Tx.
Pin 2 is an external interrupt or general purpose I/O.

I don't have a book to reference on

we don' need no steenkin' books: