Is there anyway i can hash the incoming password to compare with the stored and hashed
password without using CheckPasswordAsync?
Not really. There is a trick in this - the password is also randomly salted and the salt is part of the hash, so you need to get that part out first to do the hashing. The hash also contains a code saying HOW it was hashed, IIRC. It is all in the code (it is not like these libraries are not open source), but it is a little more complex than running a hash method.
I generally find no need to do anything else then CheckpasswordAsync
- it does what should be done and more is not needed.
If you really want to implement that yourself, start by RTFS (s = source), i.e. at https://github.com/dotnet/aspnetcore/blob/master/src/Identity/Extensions.Core/src/PasswordHasher.cs - this is how the password is hashed, so this does answer the question in detail.