7 segment display

However, the display comes out choppy.

What does this mean? Are the numbers not displayed correctly, or what?

  Serial.begin(9600);
  Serial.flush();

Which version of the IDE are you using? In the pre 1.0 case, flush() dumps all unread data in the incoming serial buffer. Doing so immediately after opening the serial port is silly, as there won't be any data to flush. In the 1.0 or later case, flush() blocks until the outgoing serial buffer is empty. Since you haven't written anything to the serial port, the outgoing buffer is empty, and flush() won't do anything. Again, calling it is silly.

  if (pos1 = 11) {

After assigning the value of 11 to pos, the assignment operator returns the value assigned. Your if test might as well read:

  if(11)

which will always be true, You most likely wanted == there, not =.

    if(!toWrite) { continue; }
    shiftIt(toWrite);

If not toWrite, skip to the end of the loop. Otherwise, call the function, and then end the loop. Convoluted logic, when

   if(toWrite)
     shiftIf(toWrite);

would be more intuitive. At least, it is to me.