We've just recently been made aware of some issues with the "single" uploader, causing some images to appear pixelated when posting.
The single upload tool is provided by Aviary who make an awesome editor (that you can see). Unfortunately they've just changed their pricing model, as you used to be able to get images up to 3 megapixels saved and now it's 1 for the web.
While obviously this isn't something that is a problem for Instagram photos (as they are less than 1 megapixel) it seems that the new model means that they downsize the image before the users can edit/crop, which is what's causing the problem, so an image that is more than 640x640 initially might get resized to something smaller -- very frustrating!
We've just put in a request for an upgrade from them (up to 25 megapixels which is the next step) which should solve the issue, and we will let you know when it's come through and tested hopefully in a day or two (approx 16 May).
In the meantime, best if you crop the images yourself to a square then upload using the bulk tool as it doesn't do any transforms beyond bringing them down to 640px if they're larger. We'll update this article and the message on the single upload page when the new key comes and the issue is solved.
You can see in the corner of the Aviary editor the size of the image that is currently displayed. It's best to check this to make sure it's large enough or you might get pixelated images:
400x400: bad. will come out pixelated
550x550: okay, but might still come out a bit pixelated
640x640: all good!