Cycle between High and LOW signal every milliseconds for 6 seconds

You don't seem to be updating the value of overallstarttime anywhere so this test

    //track 6s time interval for stepper motor to run
    if (currenttime - overallstarttime >= Timeinterval && stepping)
    {
      stepping = false;
    }

will return true every time and stepping will be set to false every time.