Just to clarify, Enabling SmartRoam on the ZD, does not actually make the client's roaming function any smarter, it only limits the number of APs that will respond to a client's requests.
In theory the fewer the response, most likely from APs that are closer, the better the odds are of it making the correct decision as to which AP to roam to.
The only other thing you can do is to increase the Basic service rate to something higher. 1/6 Mbps on 2.4 GHz and 6 Mbps on 5 GHz can go farther than what is necessary good for data traffic. By increasing the BSS min rate you will effectively decrease the cell size, beacon at 24 Mbps for example will a shorter distance than that going at 6 Mbps, so for any given point in the network that has a BSS min rate of 24 Mbps there are fewer "AP" the client can hear, and of those that a client can hear it can definitely support a higher data rate for non-management traffic. The caution in doing this is that you may create coverage hole in your network. If you do this I would recommend starting from lower rate, 9 Mbps then 12 and so on until you get an acceptable "roaming" by the client and keep it there, then test for coverage holes.