You haven't described what the value means as an unsigned int, or what the returned char * would mean, or the relationship between them. There are lots of ways to perform "conversions" that produce nonsense results.
If the value is, in fact, the character value to be returned, then you could allocate character space for it, store the value as a character in that space, and return a pointer to it.
If it's an index to the character to be returned, on the other hand, all you have to do is convert it to a pointer and return that. For example, suppose
indx is the unsigned integer index of a character in
ch_array, an array of characters.
Then you could simply return the value ch_array+indx, which would be a pointer to the indexed character in the array.