1) Heels should be firmly planted on the ground. This can seem impossible: many people will feel like they can't even get to parallel, let alone ass to ground. My favored solution to this is adding elevation to the heels. A plank or two can add an inch or more to heel height. This gives your foot the support it needs in a squat and helps form good habits. When you rise from the squat, most of the force should be being applied through the heel. Over time you will decrease the heel elevation.
2) Body weight distribution can add to the difficulty of it if you're "back heavy." For my body fat distribution, losing weight enabled me to balance over my heels, while before I would fall backwards.
3) Practice every day, even if it's just a set or two of squats.
4) Hip flexion and ankle dorsiflexion are the key components to a squat. I find the former easier to improve than the latter. The supplementary exercises I've found most useful are Cossack squats, horse stance, and training my pancake split. For the pancake, you want all the folding to come from the hips and not from the lower or upper back. This transfers well to working on squats, because folding from the hips instead of the back brings your center of mass forward more effectively.