Why is my smoke in such a bad quality (cycles)?
You simply don't have enough resolution. You have 50 base res, and 1x high res. Each high res division splits the voxel along each axis, so with 1x high res your domain container is only 100 voxels high. However, the smoke region alone is over 400 screen pixels high in the final render! Usually there's some padding in the container as well, so each voxel has to cove 4-6 screen pixels! This leads to the pixelated look. You need to just increase resolution.

Adjusting base resolution can alter the movement of the simulation, so try just cranking up high res first. Increase high-res divisions to 3 or 4, and re-bake. See if you like the result. If it looks too obviously like a smoothed low-res sim, drop back to high-res 1 (to save baking time) and do some tests with higher base res, like 70-100. Once you're happy there, bring high res back up to keep even more detail.