I blow the piston out with compressed air fed in the brake line hole (bleed nipple installed and tight). If it's stuck and doesn't move at all, it needs to be squeezed back into the caliper with a big C-clamp to break it free. Then blown out as far as it will go, squeezed back in again, blown out again, etc., until it comes all the way out. If it's still stuck and won't move at all after squeezing it in, warming the caliper with a heat gun can help.
I just took a bunch of old parts bike calipers apart to scrounge the good parts out of them. Some were really stuck but I managed to get them all apart using the procedures I've outlined above.
When you get it apart, hopefully you won't find the piston too badly rusted up and pitted. If it is, it will need replacing. The usual cause for sticking is just a build-up of dried out brake fluid in the rubber seal's groove. You'll need to pop the seal out (square sectioned o-ring) and clean all that crust out of the groove.