While they are both excellent suggestions, the question was on how to shorten labels.
Label expressions work all the time and I'm assuming that you don't want to shorten all of them, just the ones for small properties. Some investigation will bring you to an arbitrary number on what is small, I will call this value "small" but you will need to substitute a value for it.
As Python parser (might not work as the indexing of the string is in  so ArcMap might get confused and go looking for a field called -2:):
def FindLabel ( [ADDRESS],[SHAPE_AREA] ):
if len([ADDRESS]) > 2 and [SHAPE_AREA] <= small:
As VB parser:
fuction FindLabel( [ADDRESS],[SHAPE_AREA] )
if len([ADDRESS]) > 2 and [SHAPE_AREA] <= small
FindLabel = right([ADDRESS],2)
FindLabel = [ADDRESS]