Nothing is better than time. Long years of much stretching. But, here's some stretch drills that might help you on your way.
Try that butterfly stretch with a partner. While you are in butterfly, have your partner kneeling in front of you, facing you. Have him place his palms on your knees. Now, before I get to the stretch drill, try this - have him push down kind of quickly. Not really hard, not to hurt you and not too far. But you'll feel your knees bounce back up against his push. That is your stretch reflex. That's the sucker you want to fool in this drill.
Have your partner, very slowly, push your knees toward the floor. REAL slow, like an eighth of an inch every ten seconds. After about twenty seconds, have him stop and hold your knees right there. Then force up against his hands, trying to raise/close your knees in an isometric movement (he doesn't allow your knees to raise). Hold that push for about five to ten seconds, then relax. Then have your partner, GENTLY and SLOWLY push your knees down some more. If he goes too quickly, your stretch reflex will kick in and that's what you want to avoid. Again, you'll recognize it by your knees bouncing up slightly. Have him push your knees down some more, even if it's an eighth of an inch. Repeat the hold down by him, and the pushing up by you. Then lower gently again. Repeat this as much as you can stand it, I recommend at least three to five push downs.
PART TWO of this drill. Still in a butterfly, lie back and lay on the floor. Have your partner push your heels closer to your butt. Have him kneel closer to you so his knees are bracing your insteps from sliding anywhere. Have him repeat the pushdown exercise with you on your back. Still slow and easy, same isometric push up by you (your knees) and avoid the stretch reflex. Do this a bunch of times as well. (how many is up to you, you'll know what's best by playing with it for a week or two)
PART THREE. Have your partner stand up, like in a real narrow horse stance, and pick up your legs and wrap them around HIS legs. "Behind your knees" should be around his outer shins. Have him lean down and place his hands on your knees. Yes, he's going to push down your knees as before and you are going to resist, but before he pushes, try to force your heels towards your butt. repeat a few times.
Another drill that will help - stand sideways against the wall. Pick up your sidekick and give it to your partner. Have him slowly raise it up, an inch at a time (or less) then have him hold it strong while you force it down for a ten count. Then have him raise it. (It will go up easier now) Repeat this an inch or so at a time, as high as you can go. (BOTH LEGS)
Both of the above stretches are proprioceptive neuromuscualar facilitation. (That's a fancy sports medicine term for what we martial artists have been doing for centuries)
Last one for now (I'll save the best for next time, because i'm tired of typing) This should be done last in your stretch workout. It's called the "lazy man's stretch".
Sit sideways against the wall, your legs straight out in front of you along the wall. make sure your butt is up against that wall. Then swing your legs up against the wall and your back onto the floor. Open your legs in a split position above you against the wall. Stay there. You might want a pillow under your head if you're at home, or a kick shield under your head if you're in the dojo. After a couple minutes, reach up with your hands, grab your gi pant and pull those suckers down to the floor a little more. Repeat that pulldown every couple minutes. If you stay in that position too long your legs will go to sleep. Which is okay, but you're screwed for a few minutes if the place catches on fire or if your instructor calls you.
Best of luck, my friend. And remember, stretching s*cks. Always has and always will. If it doesn't, your probably not doing it right.
