First, I am not trying to find the smallest number of questions. Let's just find an answer and then try to optimize it.
If you ask to each person the question "Are you the joker?", the knights would answer "no" and the knaves would answer "yes". This easily separates them, but leaves the joker in any of the two groups.
Lets suppose that the joker answered "no", so he is in the knights group. Since he does not want to be caught and is presumably smart, he would pose himself as a knight, always giving the answers that a knight would give.
Now, lets suppose that the joker answered "yes", so he is in the knaves group. Since he does not want to be caught and is presumably smart, he would pose himself as a knave, always giving the answers that a knave would give.
Since nobody (except the joker himself) knows if somebody else is or is not the joker and nobody can give a proof that he is not the joker, we have a situation that if the joker answered "yes", he can't be distinguished from a knight. If he answered "no", he can't be distinguished from a knave.
Asking a knight "Do you know who is the joker", he would answer "No". The knave would answer "Yes". The joker would follow saying what a knight or a knave would say accordingly to his previous answers. No information is gained here.
Asking a knight if somebody else is or is not the joker would produce the answer "I don't know" or something similar. If you ask this to a knave, he could not answer "yes", "no" or "I don't know", so he would answer "I know the answer, but I can't tell you" or something similar. The joker would follow the answers from the group he chose. This is essentially the same as the previous question, so again, no information is gained here.
If the question is changed to "Is the joker among/not among that X group?" the same "I don't know" and "I know the answer, but I can't tell you" answers will follow from the same people for any arbitrary definition of group X, and no information gain would be produced. There is an exception for trivial cases where X is an empty group, a group with everybody or a group with everybody except who is being asked, which would not produce any information gain either.
If you change the question to "what would the person X answer if I asks him if person Y is the joker?", the pattern gets a bit more complicated, but this would not produce any information gain either.
So, in all the ways, except if the joker blunders by producing an incoherent answer somewhere, it is impossible to solve the puzzle only with the provided information, even if we knew what the joker answered to the "are you the joker?" question (and yet, we don't).
But I have a lateral thinking answer: To not be caught, when the joker decides to pose himself definitely either as a knight or a knave, he essentially becomes a knight or a knave, so we have no joker anymore, and thus the puzzle is solved: Nobody is the joker and the least amount of questions is zero!