This answer may not be 100% airtight, but I think it will help. Consider that 누구가/누가 will be used when the person (누구) is volitionally doing something, or is being differentiated/located.
In "누구예요?" the verb is 이다, basically meaning "to be" or "is." There's no action taken by that person in order to "be," and that person is not being differentiated from anyone else here (you're already referring to a particular person, if not explicitly then by context; there are no doubts about to which person you are referring, only doubts about some information about them).
너 누구야? -- Who are you?
저 사람 누구예요? -- Who is that person over there?
누가 마틴이에요? -- Who (meaning, which person) is Martin?
누가 책을 샀어? -- Who bought the book?
누가 훔쳤어. -- Somebody stole it.
누가 그 사람이에요? -- Who (meaning, which person) is that person (that you just told me a story about, or some such context)?
So again, in the first two examples, the person I'm asking about is clear. And there's no volitional action taking place.
In the next four examples, there is either a volitional action taken by someone, or I'm trying to differentiate/locate a particular person.