Stepper motor step accuracy

Thanks for quick answers guys,

Stepper:

Motor shield:

For voltage source, I've tried with 9V batery and Arduino 9v adapter.

Wiring diagram: Actually for stepper I didn't to extra wiring without connecting cables on shield A and B as figure:

Currently I'm using different kind of stepper movement to give project but this is the old code that I faced with 45 degree angle continues

//Boran KARADUMAN Color Sorter Project
//**************************************** LIBRARIES ***************************************
#include <Average.h> // See http://playground.arduino.cc/Main/Average
#include <Servo.h>
#include <Stepper.h>
//************************************ GLOBAL VARIABLES ************************************
//Sensor variables
int S0=1,S1=7,S2=6,S3=5, LED=4; 
int OUT=2;
//Servo and stepper Variables
Servo servo360;
int cpos=0;
int abc;
const int pwmA = 3;
const int pwmB = 11;
const int brakeA = 9;
const int brakeB = 8;
const int dirA = 12;
const int dirB = 13;
const int STEPS = 25; // 360 / stepAngle
// Initialize the Stepper class
Stepper myStepper(STEPS, dirA, dirB);

void setup() {
  Serial.begin(9600);
  TCS3200_Setup();
  servo360.attach(10); 
  delay(100);
  myStepper.setSpeed(250);

  // Turn on pulse width modulation
  pinMode(pwmA, OUTPUT);
  digitalWrite(pwmA, HIGH);
  pinMode(pwmB, OUTPUT);
  digitalWrite(pwmB, HIGH);

  // Turn off the brakes
  pinMode(brakeA, OUTPUT);
  digitalWrite(brakeA, LOW);
  pinMode(brakeB, OUTPUT);
  digitalWrite(brakeB, LOW);

}

void loop() {
  myStepper.step(STEPS);
  delay(250);
  Serial.println(ReadColor()); 
  servoDrive(abc); 
  delay(250);

}

void TCS3200_Setup() {
  pinMode(S0,OUTPUT); 
  pinMode(S1,OUTPUT); 
  pinMode(S2,OUTPUT); 
  pinMode(S3,OUTPUT); 
  pinMode(LED,OUTPUT); 
  pinMode(OUT,INPUT); 
}

void TCS3200_On() {
  digitalWrite(LED,HIGH); // Switch LED on
  digitalWrite(S0,HIGH); //Output frequency scaling (100%)
  digitalWrite(S1,HIGH);
  delay(5);
}

void TCS3200_Off() {
  digitalWrite(LED,LOW); // Switch LED off
  digitalWrite(S0,LOW); //Power off sensor
  digitalWrite(S1,LOW);
}

void NoFilter() { //Select no filter
  digitalWrite(S2,HIGH); 
  digitalWrite(S3,LOW);
  delay(5);
}

void RedFilter() { //Select red filter
  digitalWrite(S2,LOW); 
  digitalWrite(S3,LOW);
  delay(5);
}

void GreenFilter() { //Select green filter
  digitalWrite(S2,HIGH); 
  digitalWrite(S3,HIGH);
  delay(5);
}

void BlueFilter() { //Select blue filter
  digitalWrite(S2,LOW); 
  digitalWrite(S3,HIGH);
  delay(5);
}

char* ReadColor() { //0=yellow, 1=red, 2=green, 3=blue, 4=object out of range
  float FrequencyClear,FrequencyRed,FrequencyGreen,FrequencyBlue;
  int PercentageRed,PercentageGreen,PercentageBlue;
  TCS3200_On();
  NoFilter();
  FrequencyClear=500.0/pulseIn(OUT,LOW,10000); // Frequency in kHz
  RedFilter();
  FrequencyRed=500.0/pulseIn(OUT,LOW,10000); // Frequency in kHz
  GreenFilter();
  FrequencyGreen=500.0/pulseIn(OUT,LOW,10000); // Frequency in kHz
  BlueFilter();
  FrequencyBlue=500.0/pulseIn(OUT,LOW,10000); // Frequency in kHz
  TCS3200_Off();
  //Output frequency blue, green, red percentage represents the ratio of the 
  //respective color to the Clear channel absolute value:
  PercentageRed=int((FrequencyRed/FrequencyClear)*100.0);
  PercentageGreen=int((FrequencyGreen/FrequencyClear)*100.0);
  PercentageBlue=int((FrequencyBlue/FrequencyClear)*100.0);
  //Learned blue, green, red percentage values of different colors
  int SavedColorRed[] = {42,50,19,13}; 
  int SavedColorGreen[] = {30,22,45,26};
  int SavedColorBlue[] = {20,30,36,58};
  char* GetColor[] = {"yellow","red","green","blue",""};
  int ColorArray[3];
  int i_color; 
  int ClosestColor;
  int MaxDiff;
  int MinDiff=300;
  if(FrequencyClear<1.5){ClosestColor=4; 
   }// Object out of range
  else {
    for (i_color=0; i_color<4; i_color++) { //Find closest color
      ColorArray[0]=abs(SavedColorRed[i_color]-PercentageRed);
      ColorArray[1]=abs(SavedColorGreen[i_color]-PercentageGreen);
      ColorArray[2]=abs(SavedColorBlue[i_color]-PercentageBlue);
      MaxDiff=maximum(ColorArray,3);
      if (MaxDiff<MinDiff) {
        MinDiff=MaxDiff;
        ClosestColor=i_color;
        abc=i_color;
       }
     }
   }
   return GetColor[ClosestColor];  
} 

void servoDrive(int curr){
    switch(curr){
      case 0: 
      servo360.write(15);
         break;
      case 1:
      servo360.write(60);
         break;
    case 2:
      servo360.write(105);
         break;
    case 3:
      servo360.write(145);
         break;
     default:  ;}
}

@Robin2

I wanted to make sure to give 25.0 value as a step. But even int I was confronting same problem.