Name is a good candidate but email, upn or even a "unique number" are as good. The point is - there is no ultimate candidate.
I think that if your concern is to remain agnostic, you should rather consider defining an sts for the rp as "the address of sts endpoint and a set of claims that are used to match users".
This way sts1 could be defined as "https://sts1.blah" and "username claim" but sts2 would be "https://sts2.blah" and "email".
After few years of experience I see such approach as the only possibility just because different stses offer different claims and there is just no "one claim which is guaranteed to occur always".
Having said that, most of the times we assume that any sts would return at least username OR email and the rp can trust this. This simplifies the matching of users at the rp side.