Getting Stepper Motor to be able to allow potentiometer and change direction at same time

In that code, the time that it takes to do the serial print in the cases is controlling the speed of the stepper, not the potentiometer. Comment out the serial prints and see.

Use the state change detection method to toggle the state of the setdir variable.

Here is an example showing how. Note that there are no serial prints to slow down loop execution. For your code to work right the loop() must run at full speed. This will work as long as the motor is going slow. If it is going fast it cannot reverse suddenly. Physics prevents that. You will need to rewrite the code to stop the motor and accelerate it to higher speeds.

/*
   Stepper Motor Test
   stepper-test01.ino
   Uses MA860H or similar Stepper Driver Unit
   Has speed control & reverse switch
*/

// Defin pins

const byte reverseSwitch = 8;  // Push button for reverse
const byte driverPUL = 7;    // PUL- pin
const byte driverDIR = 6;    // DIR- pin
const byte spd = A0;     // Potentiometer

// Variables
int var = 0;
int pd = 500;       // Pulse Delay period
bool setdir = LOW; // Set Direction

void setup()
{
   Serial.begin(9600);
   pinMode (driverPUL, OUTPUT);
   pinMode (driverDIR, OUTPUT);
   //  attachInterrupt(digitalPinToInterrupt(reverseSwitch), revmotor, RISING);
}

void loop()
{
   pd = map((analogRead(spd)), 0, 1023, 2000, 50);
   digitalWrite(driverDIR, setdir);
   digitalWrite(driverPUL, HIGH);
   delayMicroseconds(pd);
   digitalWrite(driverPUL, LOW);
   delayMicroseconds(pd);

   static bool lastVar = HIGH;
   var = digitalRead(reverseSwitch);
   if (var != lastVar)
   {
      if (var == LOW)
      {
         setdir = !setdir;
      }
      lastVar = var;
   }
}

Code tested on real hardware.

Tutorials:
state change detection
state change detection for active low inputs
Robin2's simple stepper programs (has non-blocking example).