AD9833 Continuous Frequency Change
I think that the behavior you see is the result of writing to all registers for each change and/or writing: 


  WriteRegister(Waveform);             // Exit &amp; Reset to SINE, SQUARE
  or TRIANGLE


If you would only write to the register setting the frequency then perhaps you would get a smooth frequency change you want.

I would make a copy of the AD9833setFrequency procedure, change its name and adapt it such that it only writes to the registers which actually need to change.