My 4-year-old daughter will not, in any way shape or form, poop on the potty. She will hold it as long as she has to and will only go in a diaper. Her poops are soft. Is it defiance? Nothing has worked, not even disciplining her.
The way to move from diaper to potty for most strongly resistant kids is with little tiny steps–especially when there has already been so much emotional energy, pressure, and discipline involved. Take care to make every step an act of the two of you agreeing and cooperating.
If, for example, your child is happy using the diaper, the first small step is to get her using the diaper in the bathroom. Next, get her to use the diaper in the bathroom sitting down; it could be on the edge of the bathtub, on a chair, or on the floor. The goal is to encourage her to sit. If you push too hard, she will resist. You cannot force progress on this one–she will not have to poop on a potty until she wants to.
With younger kids and other issues, you can just make things happen. For example, if she was fussy and you needed to leave, you could just pick her up and go. Or if she were hitting someone, you could give her a time out. But here, force and punishments do not work. In fact, they only make things worse. The challenge at hand is to learn to engage cooperation.