Peel off the top layer of the concrete. This is a difficult process for which you should probably hire a professional sealer.
Scrub any de-icing salts and other chemicals off the surface. They can warp unprotected concrete and exacerbate your peeling problems.
Remove all loose particles with a pressure wash. This requires a powerful hose that can shoot water at a high velocity. Consider buying a pressurized attachment for your garden hose, then scour the surface for loose flakes and chips.
Resurface the remaining area until you have a level surface. To do this, you will need a bag of Portland cement, sand and water. Stir together a concrete mix as indicated on the back of the cement bag. Then fill in the loose patches using a concrete spatula until the surface is completely flat.
Cover the area with a new overlay. This involves filling in the remaining space with cement until the surface is parallel with the surrounding concrete. Use the spatula from the previous step to smooth out the overlay.
Cover it with a layer of cement paint. This is an optional step and is only necessary if the surrounding concrete is a different color than the new area. In this case, buy a cement paint color from your local hardware store and apply it to the new surface while the concrete mix is still damp.
For extra protection, apply a penetrating sealer to the surface. A good sealer, though it cannot prevent a weak surface from peeling eventually, will strengthen it enough to keep it smooth for a long time. This can buy you a few more months (or years) before you have to refinish it.
Buy a compound to fill any cracks that form. If your new layer dries too quickly, it may stress the surface and leave unsightly cracks and ripples. If this happens, pour the compound into the cracks and smooth it out with your spatula. You will also have to apply sealer again after the compound has fully dried.