I think the main criteria for getting dance are:
Your romance has to be at the ball: Whilst subsequent conversations suggest that non-party members were hanging out there somewhere, they don't come forward to dance. I made the mistake of leaving out Solas first run even though I was romancing him, thinking it wouldn't be his scene. Then I discover he loved it all and (from the forums) he would have danced with me. I didn't get any dance, although Josephine came out to talk with me.
You have to have got far enough along in your romance: If you haven't had the balcony scene with Solas, when he asks if the Anchor has changed you, or you haven't had your little tryst in the mountain glade with Cassandra, then they probably won't dance even if in your party. You have to take heart icons with Solas when offered or you will end up being considered not in a romance.
You have to approach your LI at the ball and ask them for a dance: They will decline at the time but then come out to you at the end. So far as I am aware, none of these dance opportunities takes place anywhere other than the balcony. The only one on the dance floor itself is Florianne.