Issue solved by fakemustache here
(from The Verge)
"It’s my understanding that the default image resampling method on Android is nearest-neighbor. I’m surprised Instagram hasn’t implemented something better by now.
Also, from my own experience, the “Use High-Quality Image Processing” setting can cause a tearing effect on images so disabling it could improve picture quality. Instagram hasn’t really noted which devices the feature is meant for but seems to cause problems on many phones.
You can fix the pixelated look shown on the original post by sizing your images to 612×612 before importing them into instagram. You’ll need to install an app called Resize from the Play Store. Make a new profile on the app with the following properties: width: 612, height 612, quality:100, interpolation: Lanczos 3."
Original Image – 2048×2048 – Imported from Gallery – Nearest Neighbor
Scaled Image – 612×612 – Imported using Resize – Lanczos 3
Unfortunately the free version doesn't have the setting that is needed. The paid version costs $2.50
Note: I did test it on instagram with success.