Stepper motor and microstepping confusion

A behaviour which I haven't been able to find an answer for.

Using a Adafruit motor shield (V2) with a R3 Uno driving a bipolar 12V NEMA-17 type motor.
If I use:
ttmotor->step(200, FORWARD, MICROSTEP);
then the motor will move one complete revolution smoothly.

However if I use:
for (int i = 0; i<= 200; i++)
{
ttmotor->step(1, FORWARD, MICROSTEP);
}
then the motor will move two complete revolutions.
As well if I slow the execution by placing a delay() in the for loop, the motor moves in a repeating pattern of dit,dit-dit-dit,dit,dit-dit-dit,... angle moved corresponds to noise pattern, small jump then large jump, then small jump.....and so on.

I thought that both bits of code would do one revolution.

Regards,
Colin

Which stepper library are you using?

#include <Wire.h>

#include <Adafruit_MotorShield.h> As downloaded from Adafruit. Latest I think.

Adafruit_MotorShield AFMS = Adafruit_MotorShield();

// Settings for connection of a stepper motor with 200 steps per revolution (1.8 degree)
// to motor port #1 (M1 and M2)
Adafruit_StepperMotor *ttmotor = AFMS.getStepper(200, 1);

Looks like some problem in the library code with microstepping.
Made some changes to library code and all works ok now.

Regards,
Colin

If there is a bug in the library then report it to the authors... Then we all get the fix.