novato que no sabe usar ULN2003

Buenas de nuevo. Me pongo en contacto con ustedes, porque no encuentro el programa ni tutorial para, por medio de un ULN2003 y un joytick, poder girar completamente un servomotor adelante/atrás.
He encontrado el programa de un UNL2003, que deberá ir en el programa, pero claro, me faltaría, hacer la comunicación con el joytick.

Aquí, programa de ULN

const int motorPin1 = 8;    // 28BYJ48 In1
const int motorPin2 = 9;    // 28BYJ48 In2
const int motorPin3 = 10;   // 28BYJ48 In3
const int motorPin4 = 11;   // 28BYJ48 In4
                   
//definicion variables
int motorSpeed = 1200;   //variable para fijar la velocidad
int stepCounter = 0;     // contador para los pasos
int stepsPerRev = 4076;  // pasos para una vuelta completa
 
//tablas con la secuencia de encendido (descomentar la que necesiteis)
//secuencia 1-fase
//const int numSteps = 4;
//const int stepsLookup[4] = { B1000, B0100, B0010, B0001 };
 
//secuencia 2-fases
//const int numSteps = 4;
//const int stepsLookup[4] = { B1100, B0110, B0011, B1001 };
 
//secuencia media fase
const int numSteps = 8;
const int stepsLookup[8] = { B1000, B1100, B0100, B0110, B0010, B0011, B0001, B1001 };
 
 
void setup()
{
  //declarar pines como salida
  pinMode(motorPin1, OUTPUT);
  pinMode(motorPin2, OUTPUT);
  pinMode(motorPin3, OUTPUT);
  pinMode(motorPin4, OUTPUT);
}
 
void loop()// podría ser diferente
{
  for (int i = 0; i < stepsPerRev * 2; i++)
  {
    clockwise();
    delayMicroseconds(motorSpeed);
  }
  for (int i = 0; i < stepsPerRev * 2; i++)
  {
    anticlockwise();
    delayMicroseconds(motorSpeed);
  }
  delay(1000);
}
 
void clockwise()
{
  stepCounter++;
  if (stepCounter >= numSteps) stepCounter = 0;
  setOutput(stepCounter);
}
 
void anticlockwise()
{
  stepCounter--;
  if (stepCounter < 0) stepCounter = numSteps - 1;
  setOutput(stepCounter);
}
 
void setOutput(int step)
{
  digitalWrite(motorPin1, bitRead(stepsLookup[step], 0));
  digitalWrite(motorPin2, bitRead(stepsLookup[step], 1));
  digitalWrite(motorPin3, bitRead(stepsLookup[step], 2));
  digitalWrite(motorPin4, bitRead(stepsLookup[step], 3));
}

Aquí, el de un trabajo con joytick.

#include <Servo.h>// para controlar al servo 
Servo servo1;
int angulo=180;//me gustaría que diera la vuelta completa.
int salto=3;
int Eje_X = A0;
int Eje_Y = A1;//seria para el siguiente , paso
int boton =1;
int Led=12; // 


void setup() {
  servo1.attach(9);  // attaches the servo on pin 9 to the servo object
pinMode ( boton,INPUT_PULLUP);
}

void loop() 
{
  int p=analogRead (A0);
if (p<400)
angulo=angulo+salto;
else if (p>600)
angulo=angulo-salto;


                 servo1.write( angulo );
                 delay(10);
}

Mi pregunta sería, que si, declaro todo en las variables del principio del programa y en set up, coloco adecuadamente, las variables, en el Loop, me valdría con colocar sólo lo del 2ºprograma, la del joytick.
Si por el contrario, no es lo que pienso, por favor, orientarme a hacerlo de una manera adecuada. Muchas gracias

Gracias a todos.

Usa un ULN porque no es un servo, es un stepper 28BYJ48.

2017-10-07_14-25-48.png

@ArduMyth, lo que ocurre que dejan pistas y tal vez se me esta desarrollando un sexto sentido y pueda leer mentes, que se yo.. jajaja. En realidad de tanto responder aprendes a intuir por donde van las balas.