Why am I getting 800 steps from a 200 step motor?

Hello all,
I'm starting to build a CNC machine from very little knowledge or background in electronics. So I got a motor, Arduino Uno, power supply, motor driver etc on eBay. Hooked everything up (I think correctly). I can control the motor no problem, but I am getting 800 steps per rev instead of the 200 the motor is specked for.

I'm using:
Moons ML23HSAP4300 stepper
http://www.moonsindustries.com/products/Steppermotor/RotarySteppermotor/Hybrid_Stepper_motor/Standard_HB_Stepper_motor/HB2P_ML23HS/

4A TB6600 Stepper Motor Driver Controller

with switches OFF OFF ON for no microstepping
pin 2 to DIR- 3 to DIR+ 4 to PUL- 5 to PUL+

a 24v 5A power supply

#include <Stepper.h>
  const int maxRotations = 48;
  int pause = 1000;

const int stepsPerEighth = 508; 
int rotationNumber;
Stepper myStepper(800, 2, 3, 4, 5);
void setup() {
  myStepper.setSpeed(300);
 }

void loop() {

for (rotationNumber=1; rotationNumber<=maxRotations; rotationNumber++)
{  myStepper.step(stepsPerEighth);
}
  delay(pause);


  for (rotationNumber=maxRotations; rotationNumber>=1; rotationNumber--)
{  myStepper.step(-stepsPerEighth);
}
  delay(pause);
  
}

code is a bit screwy I've got the motor hooked up to a ball screw with a 5mm pitch so 508 steps gets me 1/8 in travel and the code is moving it to get 6" of travel

I doubt the structure my machine will give me +-0.000246063 of accuracy so I don't need 800 steps

Also, "someThing == wrong", I don't know what, and my brain won't let me move on until "someThing != wrong"

I figure it something with my wiring cause I'm a noob or something, but it has me stumped.

The standard Stepper library is not really suitable for a driver that takes step and direction signals. You should look at the AccelStepper library and its DRIVER option.

Try this Simple Stepper Code which does not require any library.

...R
Stepper Motor Basics

Thanks,

I tried using the AccelStepper before using the default pin assignments as in the "Bounce" example that came with it. I was getting motion, so I thought I was doing it right, but was not liking the motion I was getting at all. So I gave up on that library as being flawed for my aplication. With the DRIVER setting and sending +5v to the other two inputs was able to get my ball screw to move pretty much dead on 10cm (I don't have a way to measure better than eyeballing it for now so I may be losing a few steps running that fast) with this code:

#include <AccelStepper.h>

AccelStepper stepper(AccelStepper::DRIVER); // Uses pins 2 for PUL- and 3 for DIR-

void setup()
{  
  
  stepper.setMaxSpeed(12000);
  stepper.setAcceleration(8000);
  stepper.moveTo(2000);
}

void loop()
{
 
    
    if (stepper.distanceToGo() == 0)
        stepper.moveTo(-stepper.currentPosition());
 

    stepper.run();
}

Thanks again, I knew it was something stupid due to my lack of experience but couldn't find an answer online and it was driving me crazy!!!